package demo5;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import org.springframework.stereotype.Controller;
import org.springframework.stereotype.Repository;
import org.springframework.stereotype.Service;

import javax.annotation.Resource;

/**
 * @Controller 和客户端打交道
 * @Service 业务逻辑
 * @Repository 标柱数据持久层
 * 如果没有特殊作用,通常我们使用@Component注解即可
 */
@Component
public class Person {
    //@Autowired
    //java提供的的原生注解  因为框架支持这个注解
    //如果有冲突
    //通过向@Ressource中传入name参数  要类名 但是类名要小写
//        @Resource(name = "shirt") 注入Shirt这个类
//        @Resource(name = "sweater") 注入Sweater这个类
//  //缺点：限制类的名称 例如 name = "shirt“  那么那个类名必须叫Shirt


//    @Resource(name = "sweater")
//    private Clothes clothes;

    /*
    *  2:要求属性的名字与类名一致
     *        @Resource
     *        private Clothes shirt;    注入Shirt这个类
     *
     *        @Resource
     *        private Clothes sweater;  注入Sweater这个类
     *
     * @Resource整体看可选择的注入方式多,但是解决装配冲突问题时缺点相同--限制依赖方类的名字
     *
     * @Resource实际开发中用的很少,基本上在Spring容器中使用的装配注解还是:@Autowired
     */


  // @Resource
   //private Clothes sweater;

  @Resource(name = "sweater")
    private Clothes clothes;

    public void play(){
        clothes.wear();
        System.out.println("出去玩");
    }
}
